#include <cstdio>
#include <algorithm>
#include <cstring>
#define _clr(x,a) memset(x,a,sizeof(x));
using namespace std;
const int N=100010;
char s[N];
int Next[N];
void kmp_pre(char* s){
    _clr(Next,0);
    Next[0]=-1;
    int i=0,j=-1;
    int l=strlen(s);
    while(i<l){
        if(j==-1 || s[i]==s[j]){
            Next[++i]=++j;
        }
        else{
            j=Next[j];
        }
    }
}
int main(void){
    while(~scanf("%s",s)){
        int m=strlen(s);
        scanf("%s",s+m);
        kmp_pre(s);
        int n=strlen(s);
        // for(int i=0;i<=n;i++){
        //     printf("%d ",Next[i]);
        // }
        // printf("\n");
        if(Next[n]==0){
            printf("0\n");
        }
        else{
            int t=n;
            //一定要和原串长度比较
            while(Next[t]>m || Next[t]>(n-m)){
                t=Next[t];
            }
            int i=0;
            //printf("%d\n",n);
            for(;i<Next[t];i++){
                printf("%c",s[i]);
            }
            printf(" %d\n",i);
        }
    }
    return 0;
}
